﻿/// <reference name="MicrosoftAjax.js"/>

Type.registerNamespace("SCS");

SCS.IFrameDialogControl = function (element) {
    SCS.IFrameDialogControl.initializeBase(this, [element]);

    /* Fields
    ****************************************************************************************************************/

    this._frameUrl = null;
    this._loadOnInit = null;
    this._frame = null;
};

SCS.IFrameDialogControl.prototype = {

    /* Setup
    ****************************************************************************************************************/

    initialize: function () {

        SCS.IFrameDialogControl.callBaseMethod(this, 'initialize');

        this._frame = this._getFrame();

        if (this._loadOnInit)
            this._loadUrl(this._frameUrl);
    },

    /* Teardown
    ****************************************************************************************************************/

    dispose: function () {

        SCS.IFrameDialogControl.callBaseMethod(this, 'dispose');
    },

    /* Event Handlers
    ****************************************************************************************************************/


    /* Public Methods
    ****************************************************************************************************************/

    show: function (caption, frameUrl) {

        //Sys.Debug.fail("");

        if (typeof (frameUrl) != "undefined" && this._frame)
            this._loadUrl(frameUrl);

        SCS.IFrameDialogControl.callBaseMethod(this, 'show', [caption]);
    },

    /* Private Methods
    ****************************************************************************************************************/

    _loadUrl: function (url) {

        //Sys.Debug.fail("");


        this._getFrame().src = url;
    },

    _getFrame: function () {

        return $("iframe", this.get_element()).get(0);
    },

    /* Properties
    ****************************************************************************************************************/

    get_FrameUrl: function () {
        return this._frameUrl;
    },
    set_FrameUrl: function (value) {

        if (this._frameUrl != value) {
            this._frameUrl = value;

            if (this._frame)
                this._loadUrl(value);

            this.raisePropertyChanged('frameUrl');
        }
    },
    get_loadOnInit: function () {
        return this._loadOnInit;
    },
    set_loadOnInit: function (value) {
        this._loadOnInit = value;
    }
};

/* Registration
****************************************************************************************************************/

SCS.IFrameDialogControl.registerClass('SCS.IFrameDialogControl', SCS.DialogControl);

